﻿<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>WinMove</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link href="../css/commands.css" rel="stylesheet" type="text/css">
<link href="../css/print.css" rel="stylesheet" type="text/css" media="print">
</head>
<body>

<h1>WinMove</h1>

<p>对匹配指定条件的窗口进行移动或更改大小的操作。</p>

<p class="CommandSyntax">WinMove, X, Y <br>
    WinMove, WinTitle, WinText, X, Y [, Width, Height, ExcludeTitle, ExcludeText]</p>
<h3>参数 </h3>
<table border="1" width="100%" cellspacing="0" cellpadding="3" bordercolor="#C0C0C0">
  <tr>
    <td width="15%">X, Y</td>
    <td width="85%"><p>目标窗口新位置的 X轴 和 Y轴 坐标（单位是像素），以窗口左上角为基准点，可以是 <a href="../Variables.htm#Expressions">表达式</a> 。屏幕左上角坐标为 0, 0 。</p>
    <p>如果只指定了这 2 个参数，其它参数留空，默认目标是 <a href="../LastFoundWindow.htm">上一次匹配窗口</a> 。</p></td>
  </tr>
  <tr>
    <td>WinTitle</td>
    <td>目标窗口的标题或标题中的部分文字（匹配模式由 <a href="SetTitleMatchMode.htm">SetTitleMatchMode</a> 决定）。如果省略其它 3 个窗口参数，默认目标是 <a href="../LastFoundWindow.htm">上一次匹配窗口</a> 。如果这个参数使用字母 A ，同时省略其它 3 个窗口参数，则以当前激活的窗口作为目标。要用窗口的 class 名进行匹配，使用 <em>ahk_class 精确 class 名</em>（Window Spy 中可以显示 class 名）。要用窗口的 <a href="Process.htm">进程标识符（PID）</a>进行匹配，使用 <em>ahk_pid %PID变量%</em> 。要用 <a href="GroupAdd.htm">窗口组</a> ，使用 <em>ahk_group 组名</em> 。要用窗口的 <a href="WinGet.htm">唯一 ID</a> 进行匹配，使用 <em>ahk_id %ID变量%</em> 。要减小检测范围，使用 <a href="../LastFoundWindow.htm#multi">多重条件</a> ，例如：<em>My File.txt ahk_class Notepad</em></td>
  </tr>
  <tr>
    <td>WinText</td>
    <td>如果使用这个参数，则它应该是目标窗口中某个文本元素的子字符串（在 Window Spy 中会显示出窗口中的文本元素）。隐藏文本只有在 <a href="DetectHiddenText.htm">DetectHiddenText</a> 设置为 ON 的时候才能检测到。</td>
  </tr>
  <tr>
    <td>Width, Height</td>
    <td>目标窗口新大小的宽度和高度（单位是像素），可以是 <a href="../Variables.htm#Expressions">表达式</a> 。如果其中一个或两个一起留空或省略或使用单词  DEFAULT ，则默认等于原始宽度/高度。</td>
  </tr>
  <tr>
    <td>ExcludeTitle</td>
    <td>标题中包含该参数指定的文字的窗口将被除外。</td>
  </tr>
  <tr>
    <td>ExcludeText</td>
    <td>文本元素中包含该参数指定的文字的窗口将被除外。</td>
  </tr>
</table>

<h3>注意</h3>
<p>如果 <em>Width</em> 和 <em>Height</em> 参数太小（或负数），大多数带标题栏的窗口最小不会小于 112 x 27 像素（有些类型的窗口可能大小有出入）。如果 <em>Width</em> 和 <em>Height</em> 参数太大，大多数窗口最大不会大于 (桌面分辨率 + 12) 像素。</p>
<p>坐标轴参数可以使用负数，这是为了支持多显示器系统，以及可以让窗口完全移出桌面。</p>
<p>虽然 WinMove 不能移动最小化的窗口，但是在 <a href="DetectHiddenWindows.htm">DetectHiddenWindows</a> 打开的情况下它可以移动隐藏窗口。</p>
<p>窗口移动的速度受 <a href="SetWinDelay.htm">SetWinDelay</a> 影响.</p>
<p>窗口的标题和窗口中的文字是大小写敏感的。要检测隐藏窗口，必须打开 <a href="DetectHiddenWindows.htm">DetectHiddenWindows</a> 。</p>
<h3>相关命令</h3>
<p><a href="ControlMove.htm">ControlMove</a>, <a href="WinGetPos.htm">WinGetPos</a>, <a href="WinHide.htm">WinHide</a>, <a href="WinMinimize.htm">WinMinimize</a>, <a href="WinMaximize.htm">WinMaximize</a>, <a href="WinSet.htm">WinSet</a></p>
<h3>示例</h3>
<pre class="NoIndent">Run, calc.exe
WinWait, Calculator
WinMove, 0, 0 <em>; 将 WinWait 找到的窗口移动到屏幕左上角。</em>

SplashTextOn, 400, 300, Clipboard, The clipboard contains:`n%clipboard%
WinMove, Clipboard, , 0, 0 <em>; 将窗口移动到左上角</em>
Msgbox, Press OK to dismiss the SplashText
SplashTextOff

<em>; 下面的 <a href="../Functions.htm">函数</a> 将指定的窗口居中。</em>
CenterWindow(WinTitle)
{
    WinGetPos,,, Width, Height, %WinTitle%
    WinMove, %WinTitle%,, (A_ScreenWidth/2)-(Width/2), (A_ScreenHeight/2)-(Height/2)
}</pre>

</body>
</html>
